1. Field of the Invention
The present invention relates to the use of expansion cards in a computer system, and more specifically to improving the performance of expansion cards.
2. Background of the Related Art
Computers are an important tool in performing a wide variety of tasks, including information storage and retrieval, word processing, numerical calculation, graphical design, three-dimensional modeling, internet browsing, electronic communications, video streaming, and gaming. In fact the range of computer capabilities increases over time as software programmers and developers produce new and improved application programs. However, every application program depends upon computer hardware to operate. In fact, the ever expanding types and capabilities of application programs seem to require every expanding hardware capabilities. Whether the hardware capabilities present new functionalities not previous included in a given computer or simply an additional amount of an existing functionality, the capabilities of a given computer may be increased by installing one or more expansion cards.
An expansion card is a printed circuit board that may be installed in an expansion slot on a computer motherboard in order to provide additional functionality to the computer or computer system. Common expansion card types include, for example, video cards, sound cards, network cards, and memory cards. Typically, each expansion card has an edge connector that fits into an expansion slot on the motherboard to provide both physical support for the expansion card and electrical communication between the expansion card and the motherboard. However, the number of expansion cards that may be accommodated in a given computer will vary in accordance with the number of expansion slots provided on the motherboard. Furthermore, an expansion slot may be used only with a compatible expansion card, meaning that the expansion card must provide an interface that is physically and electrically similar to the expansion card. Generally, the need for compatibility has been addressed by the development of computer expansion card standards, which allow expansion cards to be developed and produced by various manufacturers knowing that they will operate properly with expansion slots following the same standard.
Peripheral Component Interconnect Express (otherwise referred to as “PCI Express” or “PCIe”) is a computer standard used for motherboard-level interconnect interfaces as well for expansion card interfaces. PCIe adopts point-to-point serial links, whereas older PCI, PCI-X and AGP standards relied on a shared parallel bus architecture. The significant differences in electrically signaling and bus protocol of PCIe require a PCIe expansion card and a PCIe expansion slot to have a different mechanical form factor than with other standards.
PCIe devices communicate over a logical connection called an interconnect or link. A link is a point-to-point communication channel between two PCIe devices. Each link includes one or more lanes, wherein each lane includes a differential pair of conductors for transmitting and a differential pair of conductors for receiving. A PCIe slot may provide from one to thirty-two lanes, in powers of two (i.e., 1, 2, 4, 8, 16 or 32 lanes). The lane count for a particular PCIe slot is written with an “x” prefix, such that an eight lane slot would be referred to as an “x8 slot.” However, the number of lanes actually connected to a slot may be less than the physical size of the slot. For example, a slot may have the physical width of an x8 slot (and will physically receive an expansion card having a width of x1, x2, x4 or x8), yet will electrically support only one lane of communication. Such a slot may be referred to as an “x8 mechanical, x1 electrical slot” or as an “x8 (x1 mode) slot.”
The PCIe standard has already been released in multiple generations. In PCIe 1.x, each lane has a transfer rate of 2.5 GT/s. PCIe 2.x can signal at a transfer rate of either 2.5 GT/s (Gen1 mode) or 5 GT/s (Gen2 mode). Still further, PCIe 3.0 can signal at a transfer rate of 2.5 GT/s (Gen1 mode), 5 GT/s (Gen2 mode) or 8 GT/s (Gen3 mode). However, these standards do not require that a device be able to operate at the maximum transfer rate or speed at its maximum lane width.
By making the lane count flexible and supporting different transfer rates, the PCIe standard enables the use of high-bandwidth expansion cards as well as low-bandwidth expansion cards. The actual number of lanes used by an expansion card, as well as the transfer rate at which those lanes are operated, is determined when the link is powered on or instructed to retrain by an algorithm programmed into the expansion card by the expansion card vendor. Accordingly, an expansion card may operate at a width and speed that it has determined as providing the best performance within the slot that it is installed in.